Many applications have system environment requirements that must be fulfilled for the application to execute properly. While these system requirements can be documented in user guides, it is common practice for users not to read the information and/or confirm whether the particular system environment on which the application is to be executed satisfies the application's system requirements. If the system requirements are not met, the application may fail to install correctly. In the worst case scenarios, the application can behave unpredictably, possibly resulting in system corruption.
Problems arising because a system environment fails to meet an application's requirements often result in user dissatisfaction with the application. Additional, a large number of support calls may be generated to the application developer. To avoid problems with a system environment, installation developers may write custom libraries for an application to test for system environment requirements (e.g., system parameters, OS versions, packages, patches, service packs, etc.). While avoiding problems that may occur by relying on a user manually performing all of the prerequisite checks for an application, custom program code may lead to different problems.
One problem with the customized program code is that the code for executing the validation tests is only performed at installation time. Additionally, the validation tests may not be modified without re-releasing the medium storing the application and installation scripts. It is also not possible to add new checks without re-releasing the medium. Finally, the customized installation scripts are not able to take advantage of the fact that many applications share at least some of the same system environment requirements.